Micron Document
____ _ _ _ _
| _ \ ___ | |_ (_) _ __ ___ __| | (_) __ _
| |_) | / _ \ | __| | | | '_ \ / _ \ / _| | | | / _ |
| _ < | __/ | |_ | | | |_) | | __/ | (_| | | | | (_| |
|_| \_\ \___| \__| |_| | .__/ \___| \__,_| |_| \__,_|
|_|


The NomadNet German Wikipedia | Archives | Info
- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b

πŸ” Search

Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―

User Defined Function
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
top
Eine benutzerdefinierte Funktion (englisch user-defined function, AbkΓΌrzung UDF) in einer Programmierumgebung bezeichnet eine Funktion, die der Anwender selbst erstellen und in seine Projekte einbinden kann. Sie erfΓΌllt eine Aufgabe wie ein Makro, wird jedoch ΓΌber einen Funktionsaufruf realisiert. Benutzerdefinierte Funktionen sind in allgemeinen Programmiersprachen wie Visual Objects, Skriptsprachen wie PHP, spezieller Makrosoftware wie AutoIt und in Datenbanksprachen wie SQL und Firebird verfΓΌgbar.

Die Syntax einer benutzerdefinierten Funktion muss der Syntax der zugrundeliegenden Programmiersprache entsprechen, wobei vordefinierte Standardfunktionen und andere benutzerdefinierte Funktionen in der Definition verwendet werden kΓΆnnen. Eine benutzerdefinierte Funktion muss genau einen RΓΌckgabewert liefern.

Im Gegensatz zu einer gespeicherten Prozedur kann eine benutzerdefinierte Funktion nicht als Programm gestartet werden.

Contents

β€’ Beispiele
β€’ Weblinks

──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

Beispiele

Skalare benutzerdefinierte Funktion in SQL

Der folgenden skalaren benutzerdefinierten Funktion wird der FremdschlΓΌssel @PersNr der Person vom Datentyp Integer ΓΌbergeben. Die Funktion gibt die kleinste Vorlesungsnummer fΓΌr diese Person zurΓΌck.

CREATE FUNCTION GibMinVorlesungsnummer(@PersNr INT)
RETURNS INT
AS
RETURN
AS
(
RETURN
SELECT MIN(VorlNr)
FROM Vorlesung
WHERE PersNr = @PersNr
);

Nachdem diese benutzerdefinierte Funktion in der Datenbank gespeichert ist, kann sie innerhalb einer SQL-Abfrage verwendet werden. Die Abfrage

SELECT Professor.PersNr, Professor.Name, GibMinVorlesungsnummer(PersNr) AS MinVorlNr,
(SELECT Titel
FROM Vorlesung
WHERE VorlNr = GibMinVorlesungsnummer(PersNr)
) AS Titel
FROM Professor;

kΓΆnnte folgende Tabelle als Ergebnis zurΓΌckgeben:

| PersNr | Name | MinVorlNr | Titel |
|---|---|---|---|
| 12 | Wirth | 1000 | Softwareentwicklung 1 |
| 15 | Tesla | 1001 | Datenbanken |
| 20 | Urlauber | 1200 | Netzwerke 1 |

External Table Function (β€žexterne Tabellenfunktionβ€œ) in SQL

In dieser Variante wird genau eine unbenannte SQL-Tabelle als RΓΌckgabewert geliefert. Sie kann innerhalb einer SQL-Anweisung ΓΌberall dort stehen, wo auch eine SQL-Tabelle stehen kann. Auf SQL-Ebene wird ein Kontrolleintrag definiert, der auf ein externes Programm verweist. Das Datenbanksystem unterstΓΌtzt in der Regel mehrere Programmiersprachen, in denen das Programm geschrieben werden kann.

Die folgende benutzerdefinierte Funktion in SQL hat zwei Parameter @VorlNr, @PersNr vom Datentyp Integer:

CREATE FUNCTION GibVorlesungen(@VorlNr INT, @PersNr INT)
RETURNS TABLE
AS
RETURN
AS
(
SELECT Vorlesung.VorlNr, Vorlesung.Titel, Professor.PersNr, Professor.Name
FROM Professor INNER JOIN Vorlesung
ON Professor.PersNr = Vorlesung.PersNr
WHERE VorlNr = @VorlNr AND PersNr = @PersNr
);

Die Abfrage

SELECT * FROM GibVorlesungen(1001, 15);

kΓΆnnte folgendes Ergebnis zurΓΌckgeben (siehe SQL - Sicht):

| VorlNr | Titel | PersNr | Name |
|---|---|---|---|
| 1001 | Datenbanken | 15 | Urlauber |

Weblinks

β€’ Microsoft Docs: Create User-defined Functions (Database Engine)